<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>深入理解 Netty 的线程模型</title>
    <link href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            min-height: 100vh;
        }
        
        .hero-gradient {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }
        
        .content-card {
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(10px);
            transition: all 0.3s ease;
        }
        
        .content-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
        }
        
        .section-title {
            position: relative;
            padding-left: 20px;
        }
        
        .section-title::before {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 4px;
            height: 24px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            border-radius: 2px;
        }
        
        .code-block {
            background: #1e1e1e;
            color: #d4d4d4;
            border-radius: 8px;
            overflow-x: auto;
        }
        
        .highlight-box {
            background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
            color: white;
            padding: 20px;
            border-radius: 12px;
            margin: 20px 0;
        }
        
        .feature-card {
            background: white;
            border-radius: 12px;
            padding: 24px;
            transition: all 0.3s ease;
            border: 1px solid #e5e7eb;
        }
        
        .feature-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
            border-color: #667eea;
        }
        
        .mermaid {
            display: flex;
            justify-content: center;
            margin: 30px 0;
        }
        
        .floating-icon {
            animation: float 3s ease-in-out infinite;
        }
        
        @keyframes float {
            0%, 100% { transform: translateY(0px); }
            50% { transform: translateY(-10px); }
        }
        
        .gradient-text {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        
        .drop-cap {
            float: left;
            font-size: 4rem;
            line-height: 1;
            font-weight: 700;
            margin-right: 8px;
            margin-top: -8px;
            font-family: 'Noto Serif SC', serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
    </style>
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <script>
        mermaid.initialize({ startOnLoad: true, theme: 'default' });
    </script>
</head>
<body>
    <!-- Hero Section -->
    <section class="hero-gradient text-white py-20">
        <div class="container mx-auto px-6">
            <div class="text-center">
                <div class="floating-icon inline-block mb-6">
                    <i class="fas fa-network-wired text-6xl opacity-90"></i>
                </div>
                <h1 class="text-5xl font-bold mb-4">深入理解 Netty 的线程模型</h1>
                <p class="text-xl opacity-90 max-w-3xl mx-auto">
                    探索高性能网络框架的核心架构，掌握异步事件驱动的精髓
                </p>
            </div>
        </div>
    </section>

    <!-- Introduction Section -->
    <section class="py-16">
        <div class="container mx-auto px-6">
            <div class="content-card rounded-2xl shadow-xl p-10">
                <p class="text-lg leading-relaxed text-gray-700">
                    <span class="drop-cap">在</span>现代互联网应用中，高并发和低延迟是两个非常重要的指标。无论是大型网站、金融应用，还是实时通信系统，都需要处理海量的并发请求，并保证响应的及时性。这时候，网络框架就显得尤为重要。<strong class="text-purple-700">Netty</strong> 作为一款高性能的网络应用框架，因其高效、灵活和可扩展性，已经成为了许多企业级应用的首选。在 Netty 中，线程模型是其核心架构之一，也是实现高性能网络通信的关键。
                </p>
                
                <div class="mt-8">
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1723033324383-c3a3d12b-7ac6-4c6d-b8db-0c69aac67d3c.png" 
                         alt="Netty Architecture" 
                         class="w-full rounded-lg shadow-lg">
                </div>
                
                <p class="text-lg leading-relaxed text-gray-700 mt-8">
                    Netty 的线程模型采用了一种基于 Reactor 模式的设计，通过非阻塞 I/O 和事件驱动机制来高效地处理网络 I/O 事件。在传统的阻塞 I/O 模型中，每个请求通常需要占用一个线程，这种方式在面对高并发时会导致资源的浪费和系统的瓶颈。而 Netty 的线程模型则通过事件循环（Event Loop）和多线程机制，能够有效地利用系统资源，极大地提高了并发处理能力和吞吐量。
                </p>
            </div>
        </div>
    </section>

    <!-- Netty Positioning Section -->
    <section class="py-16 bg-gray-50">
        <div class="container mx-auto px-6">
            <h2 class="text-4xl font-bold text-center mb-12 gradient-text">Netty 的定位</h2>
            
            <div class="content-card rounded-2xl shadow-xl p-10 mb-8">
                <p class="text-lg leading-relaxed text-gray-700 mb-8">
                    Netty 是一个高性能的、异步事件驱动的网络应用框架，专为简化和优化复杂、高负载的网络应用开发而设计。作为一种在 Java 语言基础上构建的网络通信框架，Netty 通过提供简单、灵活的编程接口和强大的功能支持，使开发者能够轻松构建高效、稳定的网络应用程序。
                </p>
                
                <div class="text-center mb-8">
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1723033362394-761e0bce-1d4b-4722-a272-b6c21236cad0.png" 
                         alt="Netty Features" 
                         class="inline-block rounded-lg shadow-lg max-w-2xl">
                </div>
            </div>

            <div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">
                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-rocket text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">高性能网络通信框架</h3>
                    <p class="text-gray-600">
                        通过采用非阻塞 I/O（NIO）技术和优化的线程模型，Netty 可以有效地减少系统资源的消耗和线程切换的开销，提升了网络通信的吞吐量和响应速度。
                    </p>
                </div>

                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-code text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">灵活的协议实现支持</h3>
                    <p class="text-gray-600">
                        提供了丰富的协议支持和扩展能力，开发者可以轻松地实现自定义的应用协议。内置 HTTP、WebSocket、SSL/TLS 等常用协议实现。
                    </p>
                </div>

                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-puzzle-piece text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">高可扩展性和易用性</h3>
                    <p class="text-gray-600">
                        模块化的架构和清晰的接口设计，使得功能扩展和维护变得更加简单和直观。提供简洁且强大的 API，降低了上手难度。
                    </p>
                </div>

                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-server text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">适用于多种场景</h3>
                    <p class="text-gray-600">
                        从简单的客户端/服务器通信到复杂的分布式系统，均能见到 Netty 的身影。适用于高并发服务器、实时通信应用、分布式系统组件等。
                    </p>
                </div>

                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-building text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">企业级应用的稳定基础</h3>
                    <p class="text-gray-600">
                        已经在众多大型企业和项目中得到了广泛应用，其稳定性和成熟度得到了充分验证。拥有活跃的开发者社区和大量的第三方扩展库。
                    </p>
                </div>

                <div class="feature-card">
                    <div class="text-purple-600 mb-4">
                        <i class="fas fa-balance-scale text-3xl"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3 section-title">与其他框架的比较优势</h3>
                    <p class="text-gray-600">
                        在性能和可扩展性上往往更胜一筹，社区和文档更加完善。专注于网络通信层，常作为 Vert.x 和 Akka 等框架的底层网络库使用。
                    </p>
                </div>
            </div>
        </div>
    </section>

    <!-- Thread Model Overview Section -->
    <section class="py-16">
        <div class="container mx-auto px-6">
            <h2 class="text-4xl font-bold text-center mb-12 gradient-text">Netty 的线程模型概述</h2>
            
            <div class="content-card rounded-2xl shadow-xl p-10">
                <p class="text-lg leading-relaxed text-gray-700 mb-8">
                    Netty 的线程模型在高性能网络编程中扮演了关键角色，通过其高效的设计使得开发者能够轻松应对高并发场景。Netty 的线程模型不仅解决了传统的阻塞 I/O 模型的问题，还利用了 Java NIO 的非阻塞特性来实现高效的网络通信。
                </p>

                <div class="text-center mb-8">
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1723033409933-a5eb56b3-c1d6-42df-ac8c-3520f17d26f5.png" 
                         alt="Thread Model" 
                         class="inline-block rounded-lg shadow-lg max-w-3xl">
                </div>

                <div class="highlight-box">
                    <h3 class="text-2xl font-bold mb-4">
                        <i class="fas fa-lightbulb mr-2"></i>核心概念
                    </h3>
                    <div class="grid md:grid-cols-3 gap-4">
                        <div>
                            <h4 class="font-bold mb-2">Boss 线程</h4>
                            <p class="text-sm opacity-90">负责监听连接请求并将其分配给 Worker 线程进行处理</p>
                        